#include "bsp_key.h"
#include "n32g45x.h"
#include "bsp_led.h"

bool key1_pressflag = 0;
bool key2_pressflag = 0;
bool key3_pressflag = 0;

void Key_Init(void)
{
	GPIO_InitType GPIO_InitStructure;
	
	//使能GPIOA时钟
	RCC_EnableAPB2PeriphClk(KEY1_GPIO_CLK, ENABLE);
	GPIO_InitStruct(&GPIO_InitStructure);
	 
	GPIO_InitStructure.Pin=KEY1_GPIO_PIN;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//配置为上拉
	GPIO_InitPeripheral(KEY1_GPIO_PORT,&GPIO_InitStructure);
	
	RCC_EnableAPB2PeriphClk(KEY2_GPIO_CLK, ENABLE);
	GPIO_InitStructure.Pin=KEY2_GPIO_PIN;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//配置为上拉模式
	GPIO_InitPeripheral(KEY2_GPIO_PORT,&GPIO_InitStructure);
	
	RCC_EnableAPB2PeriphClk(KEY3_GPIO_CLK, ENABLE);
	GPIO_InitStructure.Pin=KEY3_GPIO_PIN;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//配置为上拉模式
	GPIO_InitPeripheral(KEY3_GPIO_PORT,&GPIO_InitStructure);
	
}

void Key_ScanTask(uint8_t dT_ms)
{
	static uint8_t cnt=0;
	
	//KEY1检测
	if(key1_pressflag==0&&GPIO_ReadInputDataBit(GPIOA,GPIO_PIN_4)==0)
	{
		if(GPIO_ReadInputDataBit(GPIOA,GPIO_PIN_4)==0)
		{
			//下降边沿触发任务
			//Drv_LED_Toggle(LED_1);
			key1_pressflag=1;
		}
	}
	if(key1_pressflag==1&&GPIO_ReadInputDataBit(GPIOA,GPIO_PIN_4)==1)
	{
		if(GPIO_ReadInputDataBit(GPIOA,GPIO_PIN_4)==1)
		{
			//上升边沿触发任务
			
			key1_pressflag=0;
		}
	}
	
	//KEY2检测
	if(key2_pressflag==0&&GPIO_ReadInputDataBit(GPIOA,GPIO_PIN_5)==0)
	{
		
		if(GPIO_ReadInputDataBit(GPIOA,GPIO_PIN_5)==0)
		{
			//下降边沿触发任务
			
			key2_pressflag=1;
		}
	}
	if(key2_pressflag==1&&GPIO_ReadInputDataBit(GPIOA,GPIO_PIN_5)==1)
	{
		if(GPIO_ReadInputDataBit(GPIOA,GPIO_PIN_5)==1)
		{
			//上升边沿触发任务
			//Drv_LED_Toggle(LED_3);
			key2_pressflag=0;
		}
	}
	
	//KEY3检测
	if(key3_pressflag==0&&GPIO_ReadInputDataBit(GPIOA,GPIO_PIN_6)==0)
	{
		
		if(GPIO_ReadInputDataBit(GPIOA,GPIO_PIN_6)==0)
		{
			//下降边沿触发任务
			
			key3_pressflag=1;
		}
	}
	if(key3_pressflag==1&&GPIO_ReadInputDataBit(GPIOA,GPIO_PIN_6)==1)
	{
		if(GPIO_ReadInputDataBit(GPIOA,GPIO_PIN_6)==1)
		{
			//上升沿触发任务
			//Drv_LED_Toggle(LED_1);
			//Drv_LED_Toggle(LED_3);
			key3_pressflag=0;
		}
	}
}
